package cluster

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const GlobalConfigName = "global"

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
type IGlobalConfig interface {
	Check() error
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
type EtcdConfig struct {
	Endpoint string
	Root     string
}

func (cfg *EtcdConfig) Load(path string) error {
	data, err := ioutil.ReadFile(path)
	if err != nil {
		return err
	}
	err = json.Unmarshal(data, &cfg)
	if err != nil {
		return err
	}
	return nil
}

func (cfg EtcdConfig) Check() error {
	if cfg.Endpoint == "" {
		return fmt.Errorf("Etcd.Endpoint must not empty")
	}
	if cfg.Root == "" {
		return fmt.Errorf("Etcd.Root must not empty")
	}
	return nil
}
